package com.mall.dao;

import com.mall.pojo.Role;
import com.mall.pojo.RoleMenuVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleDao {

    /**基于角色名查询总记录数    @Param("name")就是在mapper文件中用括号里面的名字，也可以不加    */
    int getRowCount(@Param("name") String name);

    /**
     * 基于条件查询当前页角色信息
     * @param name 角色名
     * @param startIndex 起始位置
     * @param pageSize 页面大小(每页最多显示多少条记录)
     * @return 当前页记录(一行记录映射为一个SysRole对象)
     *
     * 当DAO中方法参数多于一个时尽量使用@Param注解进行修饰并指定名字，
     * 然后再Mapper文件中便可以通过类似#{username}方式进行获取，
     * 否则只能通过#{arg0}，#{arg1}或者#{param1}，#{param2}等方式进行获取。
     * 当DAO方法中的参数应用在动态SQL中时无论多少个参数，尽量使用@Param注解进行修饰并定义。
     *
     */
    List<Role> findPageObjects(
            @Param("name") String name,
            @Param("startIndex") Integer startIndex,
            @Param("pageSize") Integer pageSize);
    // 删除数据
    int deleteObject(Integer id);
    // 添加数据
    int insertObject(Role entity);

    // 通过id查找role对象
    RoleMenuVo findObjectById(Integer id);

    // 更新数据
    int updateObject(Role entity);


}
